"""##################################################### User #####################################################"""


class Skill:
    Python = 1
    Java = 2
    Vue = 3
    React = 4
    IOS = 5
    Android = 6


SKILL_CHOICE = (
    (Skill.Python, 'Python'),
    (Skill.Java, 'Java'),
    (Skill.Vue, 'Vue'),
    (Skill.React, 'React'),
    (Skill.IOS, 'IOS'),
    (Skill.Android, 'Android')
)

SKILL_MAP = dict(SKILL_CHOICE)


class Sex:
    MALE = 1
    FEMALE = 2


SEX_CHOICE = (
    (Sex.MALE, '男'),
    (Sex.FEMALE, '女')
)

SEX_MAP = dict(SEX_CHOICE)

CREATE_USER_LOCK_KEY = 'create:user::username:{}'
USER_ID_JWT_COOKIES_KEY = 'Authorization'


class PermissionType:
    VIEW = 1
    ADD = 2
    CHANGE = 3
    DELETE = 4
    OTHERS = 5


"""##################################################### Project #####################################################"""


class ProjectStatus:
    SURVEY = 1
    STARTED = 2
    FINISHED = 5
    ABANDONED = 6


PROJECT_STATUS_CHOICE = (
    (ProjectStatus.SURVEY, '调研中'),
    (ProjectStatus.STARTED, '已启动'),
    (ProjectStatus.FINISHED, '已交付'),
    (ProjectStatus.ABANDONED, '已放弃')
)


PROJECT_STATUS_MAP = dict(PROJECT_STATUS_CHOICE)


class ProcessStatus:
    SURVEY = 1
    WORKING = 2
    FINISHED = 5
    ABANDONED = 6


PROCESS_STATUS_CHOICE = (
    (ProcessStatus.SURVEY, '调研中'),
    (ProcessStatus.WORKING, '已启动'),
    (ProcessStatus.FINISHED, '已交付'),
    (ProcessStatus.ABANDONED, '已丢弃')
)


class CheckListType:
    TODO = 1
    RISK = 2


CHECK_LIST_TYPE_CHOICE = (
    (CheckListType.TODO, '代办'),
    (CheckListType.RISK, '风险')
)


class CheckListStatus:
    NOT_ASSIGNED = 1
    WORKING = 2
    FINISHED = 5


CHECK_LIST_STATUS_CHOICE = (
    (CheckListStatus.NOT_ASSIGNED, '未指派'),
    (CheckListStatus.WORKING, '进行中'),
    (CheckListStatus.FINISHED, '已完成')
)
"""##################################################### Search #####################################################"""


class V1Search:
    USER = 1
    PERMISSION = 2


SEARCH_MAX_SIZE = 50
